C语言<题目:判断一个大于3小于10亿的整数是否是素数>

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:37:46
要求:程序运行时提示用户输入,然后等待用户输入一个整数,如果用户输入的N>3,则对n进行判断是否是素数,然后显示结果,程序不停止,继续提示用户输入,直到用户输入的n<=3则程序结束!
我已经写出来了~不知道错在哪?高手指点下!谢谢,马上要上交了!!!急啊!!!
#include<stdio.h>
#include<math.h>
void main()
{
float i,n,k;
s1: printf("请输入一个整数:");
scanf("%ld",&n);
while(n>=3)
{
k=sqrt(n);
for(i=2;i<=k;i++)
{
if(n%i==0)break;
}
if(i>k)
printf("这是一个素数.\n");
goto s1;
else
printf("这不是一个素数.\n");
goto s1;
}
}
哪里不好!我以后改!我是今年刚学的C 目前还只学了一般 可以说是入门阶段!高手帮帮忙~~

//改好了,试测ok了
#include<stdio.h>
#include<math.h>
void main()
{
long i,n,k; //整数用long类型
do{//用do...while循环还好点,不要用goto
printf("请输入一个整数:");
scanf("%ld",&n);
k=(long)sqrt(n); //转换成long类型
for(i=2;i<=k;i++)
{
if(n%i==0)break;
}
if(i>k)
printf("这是一个素数.\n");
else
printf("这不是一个素数.\n");
}while(n>=3);//如果输入的数>=3则继续,否则结束
}

你这种编程风格不好

给我发站内信
我告诉你 你的错误

然后告诉你应该怎么编程

我QQ是261189771(注明来意)

#include<stdio.h>
#include<math.h>
void main()
{
int i,n,k;
printf("请输入一个整数:");
scanf("%d",&n);
while(n>=3)
{
k=sqrt(n);
for(i=2;i<=k;i++)
{
if(n%i==0)break;
}
if(i>k)
printf("这是一个素数.\n");
else
printf("这不是一个素数.\n");
printf(&q